package ThreadTest;

class Mythread2 extends Thread{
    @Override
    public void run() {
        while(true){//在循环中如果不加任何限制就会转的非常快，导致打印的东西太多看不过来
            System.out.println("hello thread");
            try {
                Thread.sleep(1000);//强制线程休眠(阻塞状态)1秒，1s内该线程不会在cpu上执行，此时需要处理异常
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class Demo2 {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Mythread2();
        t.start();

        //在一个java进程中也至少会有一个调用main方法的线程(自动生成的)
        //而自己创建的 t线程 和 自动创建的main线程 就是并发执行的关系
        while (true){
            System.out.println("hello main");
            Thread.sleep(1000);//1s后先唤醒哪个线程是不确定的。对操作系统来说，内部对线程之间的调度顺序在宏观上可认为是 随机的(抢占式执行)
        }
    }
}
